前言: 在《Gson正确使用姿势(一)》的 Gson 泛型使用一节中介绍了如何使用泛型来简化POJO的设计,但是每次都要写 new TypeToken<XXX>(){};
, 你能忍么? 我不能。。。本文主要介绍如何去将泛型的使用封装起来。
数据格式
还是使用项目中的json数据格式
1 | { |
1 | { |
方法原型
1 | // 处理 data 为 Object 的情况 |
封装步骤
封装最重要的就是获取我们需要Type,使用 java 提供的 ParameterizedType 接口
实现一个简易的ParameterizedType
1 | public class ParameterizedTypeImpl implements ParameterizedType { |
生成Gson 需要的泛型
解析data是Object的情况
1 | public static <T> Result<T> fromJsonObject(Reader reader,Class<T> clazz){ |
解析data是array的情况
1 | public static <T> Result<List<T>> fromJsonArray(Reader reader, Class<T> clazz){ |
author @ygwang